<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- designer-manual.qdoc -->
  <title>信号和槽编辑模式 | Qt Designer 手册</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.14</a></td><td ><a href="qtdesigner-manual.html">Qt Designer 手册</a></td><td >信号和槽编辑模式</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtdesigner-manual.html">Qt 5.14.2 参考文档</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="designer-layouts.html" />
  <link rel="next" href="designer-buddy-mode.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="designer-layouts.html">使用布局</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-buddy-mode.html">伙伴编辑模式</a>
</p><p/>
<div class="sidebar">
<div class="toc">
<h3><a name="toc">目录</a></h3>
<ul>
<li class="level1"><a href="#connecting-objects">连接对象</a></li>
<li class="level1"><a href="#editing-and-deleting-connections">编辑和删除连接</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">信号和槽编辑模式</h1>
<span class="subtitle"></span>
<!-- $$$designer-connection-mode.html-description -->
<div class="descr"> <a name="details"></a>
<p class="centerAlign"><img src="images/designer-connection-mode.png" alt="" /></p><p>在 <i>Qt Designer</i> 的信号和槽编辑模式中，可以使用Qt的信号和槽机制将窗体中的对象连接在一起。使用 <i>Qt Designer</i> 提供的信号和槽菜单，通过直观的连接界面，窗口小部件和布局都可以连接。保存窗体时，将保留所有连接，以便在构建项目时使用它们。</p>
<p>有关Qt的信号和槽机制的更多信息，请参阅 <a href="../qtdoc/exceptionsafety.html#signals-and-slots">信号和槽</a> 文档。</p>
<a name="connecting-objects"></a>
<h2 id="connecting-objects">连接对象</h2>
<p>要开始连接对象，打开<b>编辑(Edit)</b>菜单，选择 <b>编辑信号/槽</b>，或按<b>F4</b>键，进入信号和槽编辑模式。</p>
<p>窗体上的所有小部件和布局都可以连接在一起。但是，间隔符只是为布局提供了间隔提示，因此它们不能连接到其他对象。</p>
<a name="highlightedobjects"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-connection-highlight.png" alt="" /></td><td ><b>突出显示的对象</b><p>当光标停留在可在连接中使用的对象上时，该对象将突出显示。</p>
</td></tr>
</table></div>
<p>要建立连接，按下鼠标左键并将光标拖向你想要连接的对象。当您这样做时，将有一条线从源对象延伸到光标。如果光标在窗体上的另一个对象上，那么这一条线将以指向目标对象的箭头结束。这表明当您释放鼠标按钮时，两个对象之间将建立连接。</p>
<p>在拖动连接路径时，您可以在任何时候按 <b>Esc</b> 键放弃连接。</p>
<a name="makingaconnection"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-connection-making.png" alt="" /></td><td ><b>建立连接</b><p>当光标在窗体上移动时，连接路径将改变其形状。当光标在对象上时，对象被突出显示，表明对象可以在信号和槽连接中使用。释放鼠标按钮以建立连接。</p>
</td></tr>
</table></div>
<p>将显示 <b>配置链接</b> 对话框(下面)，您可以选择源对象的信号函数和目标对象的槽函数。</p>
<p class="centerAlign"><img src="images/designer-connection-dialog.png" alt="" /></p><p>要完成连接，从源对象选择一个信号，从目标对象选择一个槽，然后单击 <b>OK</b> 。如果希望放弃连接，请单击 <b>Cancel</b> 。</p>
<p><b>注意:</b>如果选中了 <b>显示从QWidget继承的信号和槽</b> 复选框，则源对象的所有可用信号都会显示出来。否则，从 <a href="../qtwidgets/qwidget.html">QWidget</a> 继承的信号和槽将被隐藏。</p><p>你可以在窗体上的对象之间建立任意多的连接;可以将来自对象的信号连接到窗体本身的槽。因此，许多对话框中的信号和槽连接都可以在 <i>Qt Designer</i> 中完成全配置。</p>
<a name="connectingtotheform"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-connection-to-form.png" alt="" /></td><td ><b>连接到窗体</b><p>要将对象连接到窗体本身，只需将光标放在窗体上并释放鼠标按钮。连接的端点变为电气的“接地”符号。</p>
</td></tr>
</table></div>
<a name="editing-and-deleting-connections"></a>
<h2 id="editing-and-deleting-connections">编辑和删除连接</h2>
<p>默认情况下，创建连接路径时有两个标签，它们显示连接中涉及的信号和槽。这些标签通常沿连接线方向排列。通过拖动连接路径两端标签内的红色方块，可以在它们的主机小部件内移动它们。</p>
<a name="connectioneditor"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-connection-editor.png" alt="" /></td><td ><b>信号和槽编辑器</b><p>可以修改信号和槽的连接。配置连接后，在 <i>Qt Designer</i> 的信号和槽编辑器中可以看到连接，可以在这里编辑连接。您还可以通过双击连接路径或它的一个标签以显示连接对话框来编辑信号/槽连接。</p>
</td></tr>
</table></div>
<a name="deletingconnections"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-connection-editing.png" alt="" /></td><td ><b>删除连接</b><p>整个连接可以通过单击它的任何路径段来选择。选择后，可以使用 <b>Delete</b> 键删除连接，确保它没有在UI文件中被配置。</p>
</td></tr>
</table></div>
</div>
<!-- @@@designer-connection-mode.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="designer-layouts.html">使用布局</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-buddy-mode.html">伙伴编辑模式</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
